#ifndef EMPTY_CHUNK_H
#define EMPTY_CHUNK_H

#include "AudioChunk.h"

namespace model {

class EmptyChunk;
typedef boost::shared_ptr<EmptyChunk> EmptyChunkPtr;

class EmptyChunk
    :   public AudioChunk
{
public:
    
    //////////////////////////////////////////////////////////////////////////
    // INITIALIZATION
    //////////////////////////////////////////////////////////////////////////

    EmptyChunk(int nChannels, unsigned int nSamples, pts position);
    
    virtual ~EmptyChunk();

    //////////////////////////////////////////////////////////////////////////
    // DATA ACCESS
    //////////////////////////////////////////////////////////////////////////

    /// Override from AudioChunk. When this method is called for the first time,
    /// then the zeroed buffer is generated.
    sample* getUnreadSamples() override;

private:

    //////////////////////////////////////////////////////////////////////////
    // MEMBERS
    //////////////////////////////////////////////////////////////////////////

    bool mInitialized;
};

} // namespace

#endif // EMPTY_CHUNK_H